const fs = require("fs");
const path = require("path");

// 获取命令行参数
const args = process.argv.slice(2); // 去掉前两个默认参数

// 检查是否传入了参数
if (args.length === 0) {
  console.log("请传入参数：h5 或 app");
  process.exit(1); // 退出程序
}

const target = args[0]; // 获取第一个参数

// 定义文件路径
const pagesH5Path = path.join(__dirname, "pages-h5.json");
const pagesAppPath = path.join(__dirname, "pages-app.json");
const pagesPath = path.join(__dirname, "pages.json");
const manifestPath = path.join(__dirname, "manifest.json");
const indexPath = path.join(__dirname, "index.html");
const indexH5Path = path.join(__dirname, "index-h5.html");
const indexAppPath = path.join(__dirname, "index-app.html");

// 根据参数选择源文件
let sourcePath;
if (target === "h5") {
  sourcePath = pagesH5Path;
} else if (target === "app") {
  sourcePath = pagesAppPath;
} else {
  console.log("无效的参数，请传入 h5 或 app");
  process.exit(1); // 退出程序
}

// 1. 切换 pages.json 文件内容
fs.readFile(sourcePath, "utf8", (err, data) => {
  if (err) {
    console.error(`读取文件失败: ${err.message}`);
    process.exit(1);
  }

  // 将内容写入 pages.json
  fs.writeFile(pagesPath, data, "utf8", (err) => {
    if (err) {
      console.error(`写入文件失败: ${err.message}`);
      process.exit(1);
    }

    console.log(`成功将 ${target} 配置写入 pages.json`);
  });
});

// 2. 修改 manifest.json 文件中的 h5.router.base 字段
fs.readFile(manifestPath, "utf8", (err, manifestContent) => {
  if (err) {
    console.error(`读取 manifest.json 文件失败: ${err.message}`);
    process.exit(1);
  }

  // 根据参数设置 h5.router.base 的值
  const newBaseValue = target === "h5" ? '"./"' : '""';

  // 使用正则表达式替换 h5.router.base 字段
  const updatedContent = manifestContent.replace(
    /("h5"\s*:\s*\{[^}]*"router"\s*:\s*\{[^}]*"base"\s*:\s*)[^,\n\}]+/,
    `$1${newBaseValue}`
  );

  // 将修改后的内容写回 manifest.json 文件
  fs.writeFile(manifestPath, updatedContent, "utf8", (err) => {
    if (err) {
      console.error(`写入 manifest.json 文件失败: ${err.message}`);
      process.exit(1);
    }

    console.log(`成功将 h5.router.base 设置为 ${newBaseValue}`);
  });
});

// 3. 切换 index.html 文件内容
// const indexSourcePath = target === "h5" ? indexH5Path : indexAppPath;

// fs.readFile(indexSourcePath, "utf8", (err, indexContent) => {
//     if (err) {
//         console.error(`读取 index 文件失败: ${err.message}`);
//         process.exit(1);
//     }

//     fs.writeFile(indexPath, indexContent, "utf8", (err) => {
//         if (err) {
//             console.error(`写入 index.html 文件失败: ${err.message}`);
//             process.exit(1);
//         }

//         console.log(`成功将 ${target} 的 index 配置写入 index.html`);
//     });
// });